Desplazador de Cap�tulos
6.- Los filtros resonantes 8.- Drivers de sonido para el Impulse Tracker �ndice del manual del Impulse Tracker en espa�ol
-----------
7.- EL MIDI EN EL IMPULSE TRACKER
-----------
�Quieres tener el manual del I.T. traducido al espa�ol en tu casa? Pincha aqu�
-----------

7.1.- Introducción

El añadido más importante al Impulse Tracker 2.12 ha sido la capacidad de mandar datos con el protocolo MIDI. Las versiones más antiguas del Impulse Tracker han tenido capacidad para traducir datos MIDI que entraban, por lo que era posible tocar desde un teclado MIDI y poner las notas en los patrones en tiempo real.

La salida de MIDI es un juego completamente diferente. De hecho no tienes que leerte todo este suplemento si quieres que el MIDI funcione, pero para conseguir un máximo aprovechamiento de la salida MIDI tendrás que leer todo para entender cómo funciona completamente el soporte de MIDI del IT.

7.2.- Soporte de MIDI y tarjetas de sonido (Modificado por Pulse)

Ahora mismo, los únicos dispositivos que el IT admite para la salida de MIDI son el AMD Interwave y el Sound Blaster AWE32 de Creative Labs. El soporte para otras tarjetas se realiza mediante el driver genérico MPU401. Para utilizar este driver, se debe ejecutar "IT /s19 /A<dirección>" donde <dirección> es la dirección de tu tarjeta compatible MPU401 (por ejemplo, "IT /S19 /A330"). Ten en cuenta que el driver genérico MPU401 *NO* soporta reproducción de samples.

El MIDI y las tarjetas AWE32 (Pulse)

He encontrado que los drivers de Windows'95 para la AWE32 están un poco chiflados :-) En mi ordenador, puedo utilizar el MIDI para salida/entrada en el Impulse Tracker *SI* desactivo el soporte de MIDI en Windows'95. Si no, simplemente no es reconocido. Para desactivar el soporte de MIDI en Windows'95, pulsa con el botón de la derecha del ratón en "Mi PC", "Propiedades", "Administrador de dispositivos", "Controladores de sonido, de video y de juegos". Dale un doble click en "Creative Labs SB16 or AWE32" y vete a los recursos. Desactiva el "Usar configuración automática" si estaba previamente activada y cambia la configuración básica a alguna que NO incluya los puertos MIDI 300h o 330h. (Por ejemplo, la Configuración Básica 0 tiene solo 220h, 5, 1, 5 en mi ordenador y el IT funciona perfectamente en una ventana DOS)

7.3.- Activando el MIDI

Para activar la salida MIDI, primero debes tener el IT en el modo de control de Instrumento mejor que en el modo Sample. Para hacer esto, pulsa F12 para ir a la pantalla de Variables de la Canción y pulsa en el botón de 'Instruments' si no lo habías hecho ya antes.

7.4.- El MIDI y los Instrumentos

Canal MIDI (MIDI Channel)

En la sección del Pitch en la pantalla de Instrumentos (pulsa F4 y selecciona el botón de "Pitch") hay unos elementos nuevos que son los deslizadores "MIDI Channel", "MIDI Program" y "MIDI Bank". Una vez que el valor del canal MIDI para ese instrumento sea distinto de cero, el IT mandará datos MIDI siempre cuando ese instrumento sea encontrado en un patrón, en ese determinado canal. Lo que el IT manda a través del puerto MIDI será una nota en comando. Esto se discutirá detalladamente más tarde.

Programa MIDI/Banco MIDI (MIDI Program/MIDI Bank)

Los deslizadores MIDI Program y MIDI Bank funcionan de una manera similar. Si tienen un valor de -1, el IT no transmitirá un mensaje de cambio de programa ni un mensaje de cambio de banco para ese instrumento. Si específicamente pones un programa MIDI para ese instrumento, el IT mandará un mensaje de 'cambio de programa' con el mensaje de 'note on' (activación de nota).

El deslizador MIDI Bank funciona igual; el IT no mandará un mensaje de cambio de banco si el deslizador de MIDI Bank está apagado (es decir, tiene un valor de -01). Si el MIDI Bank está activo para ese instrumento, el IT lo mandará con el mensaje de 'note on' también.

Resumen

El IT siempre mandará un comando de 'note on' para un canal MIDI particular cuando un instrumento MIDI se encuentre en el patrón. (Un instrumento MIDI es simplemente un instrumento donde el valor del canal MIDI ha sido puesto a algo diferente a Off). El IT mandará también un comando de cambio de programa y/o un comando de cambio de banco con el comando de 'note on' si son activados.

7.5.- MIDI más avanzado

Cómo trabaja el MIDI

El MIDI no es un formato de fichero (como el IT, que es un formato de módulo) ni es un esquema de fichero siquiera. El MIDI es un protocolo (o lenguaje) que es usado en la comunicación entre dispositivos. Puedes pensar que es como una red, donde los cables MIDI son los cables que unen los ordenadores, y el MIDI es el protocolo de la red (como Novell Netware, Windows Networking o el TCP/IP) usado para la comunicación entre dispositivos de sonido.Cuando un instrumento se dice que es 'compatible MIDI', significa que tiene soporte para el protocolo MIDI y que entiende los mensajes MIDI.

El formato de fichero .MID es simplemente una manera de guardar esos mensajes. Es una colección de datos MIDI, y cuando un fichero .MID es reproducido a través de un reproductor MIDI, todo lo que hace el reproductor es mandar los datos del fichero .MID a través del puerto MIDI del ordenador. En la analogía de las redes, puedes imaginarte que cada transacción simple que ocurre en la red es guardada en un fichero en tu disco duro; que cada byte está siendo grabado en un fichero, esto es lo que es un fichero .MID.

Un ejemplo de comunicación MIDI en el IT

Has leído más arriba que cuando el IT encuentra un instrumento MIDI en los datos de los patrones, este manda un comando de 'note on', que es definido en el protocolo MIDI como 'Toca esta nota en este canal MIDI a esta velocidad'. (La velocidad es similar al volumen). Si tocas un instrumento

MIDI que está mapeado en el canal MIDI 2 con la nota C-5 a una velocidad de 64, los datos que manda el IT por el puerto MIDI se asemeja a algo como esto (en hexadecimal):

Comando 'Note On' con parámetros;
Canal MIDI: 2
Nota: C-5
Velocidad: 64

Datos que el IT manda (hex): 91 3C 40
Datos que el IT manda (decimal): 145 60 64

Vamos a ver cada uno de estos tres bytes paso a paso.

El primer byte (91 en hexadecimal, o 91h) es el comando 'Note On'. Le dice al dispositivo que recibe los datos MIDI que los datos que le siguen son parte de los datos de 'Note On'. Una analogía que los trackers encontrarán útil es la columna de efectos. Allí, tienes un comando de efecto y los datos del efecto; por ejemplo, el efecto 'G20' puede ser dividido en dos partes: 'G' y '20'. La parte 'G' es el comando de efecto en sí que le dice al IT que quieres hacer un portamento, y la parte '20' son los datos del efecto, en este caso la velocidad a la que el portamento debe ocurrir. En este ejemplo MIDI, el '9' es el comando MIDI y el '1 3C 40' es el resto de los datos de ese comando.

Ahora, el segundo dígito (1 en nuestro ejemplo) especifica el canal MIDI. Los canales MIDI están basados en el 0; esto es, si quieres mandar por el canal MIDI 6, el IT especifica en los datos el 05. El canal MIDI 10 es 09h, el canal MIDI 14 es 0Dh, etc. Aquí estamos mandando por el canal MIDI 2, por lo que el valor mandado por MIDI es el 01h.

El segundo byte (3Ch) es la nota a mandar (aquí la C-5). En MIDI, todos los datos del comando (parámetros) están entre 00h-7Fh (o 0-127 en decimal). Las notas son transmitidas mediante números. Imagínate que C-1 es mandado con un valor de 00h, C#1 con 01h, C-2 con 02h, etc., entonces la nota que queremos reproducir, C-5, tiene el valor 3Ch (60 decimal).

Ahora el tercer byte debe ser fácil de entender. Este byte representa la velocidad a la que la nota debe ser reproducida. En nuestro caso, queremos una velocidad de 64, que es igual a 40h, y ese es el valor que se debe mandar.

Para resumir, tenemos tres bytes para el comando de 'note on', "91 3C 40".

Byte 1: 91 == Comando de 'Note on' (en el canal MIDI #2)

Byte 2: 3C == Dato de 'Note on' (Nota a reproducir, C-5)

Byte 3: 40 == Dato de 'Note on' (Velocidad de 64 decimal)

Configurando los datos de salida MIDI del IT

Manteniendo el mismo ejemplo en mente, pulsa Shift-F1 para ir a la pantalla de MIDI del IT y pulsa el botón de 'MIDI Output Configuration' (Configuración de la salida de MIDI). Esto te llevará al motor de salida de MIDI del IT. Ahora, si examinas el campo 'Note On', se lee:

9c n v

Esto puede relacionarse con nuestro ejemplo de arriba. Ahora, las 'c n v' del campo de 'Note On' corresponden al 'canal', 'nota' y 'velocidad'. Piensa en ellas como variables; el IT sustituirá el canal, la nota y la velocidad apropiadas que encuentre en la información del instrumento MIDI y/o de los datos del patrón.

Si tú has definido un instrumento MIDI para que suene en el canal MIDI 2, y tu lo reproduces en un patrón con C-5 y velocidad 64, todo lo que el IT hace es leer el campo de 'Note On' de la pantalla de configuración de MIDI y sustituye la 'c' por '1', la 'n' por '3C' (C-5) y la 'v' por '64'. Por lo tanto, el IT leerá '9c n v' y lo reemplazará por '91 3C 40'.

En cualquiera de los campos de salida de MIDI, las letras minúsculas representan variables (o sustituciones que el IT debería hacer) y las mayúsculas o los números son constantes que el IT escribe directamente sobre el puerto sin ningún cambio. Por lo tanto, estos campos distinguen las mayúsculas de las minúsculas: Para el comando de 'Note On', '9c n v' es escandalosamente diferente a '9C n v'. 9c representa 'enviar byte 09 seguido del byte del canal de MIDI', mientras que 9C representa 'enviar el byte 9C'.

En resumen, 0-9 y A-F son tratados como constantes hexadecimales y pasarán directamente. Las letras minúsculas serán tratadas como variables y serán sustituidas como tales. Ten en cuenta que las variables son consideradas como 'bytes completos' en sí mismos y no son nunca parte de otra secuencia de bytes excepto para la variable 'c', entonces '9n' es exactamente lo mismo que '09 n' o '9 n'; todos ellos se expandirán a la secuencia '09 <byte de nota MIDI>'. 'c' es el único valor que toma un valor distinto del byte (ocupa 4 bits), debido a la definición del protocolo MIDI. Esto significa que 9c será un byte cuando sea expandido, con el digito más bajo indicando el canal.

Las variables MIDI del IT

c: Canal MIDI

Es simplemente el canal MIDI en el cual está puesto el instrumento, basado en el 0. Ten en cuenta que este es la única variable que no ocupa 1 byte.

n: Valor de la nota

Un valor de 00-7fh representando la nota a reproducir, donde C-5 es 60h.

v: Velocidad

La velocidad MIDI de la nota.

u: Volumen

El volumen es similar a la velocidad, excepto que la velocidad no toma en cuenta la envolvente de volumen (volume envelope) ni el fadeout, cosa que sí hace la variable de volumen 'u'.

x: Panning

Manda un valor de panning MIDI. No tiene en cuenta la envolvente del panning (panning envelope).

y: Panning calculado

Manda un valor de panning MIDI que tiene en cuenta la envolvente del panning.

a: Byte alto de selección de banco.

b: Byte bajo de selección de banco.

Estos comandos sólo son realmente útiles en el campo de cambio de banco.

z: Datos de macro

(Ver la Sección de macros para una explicación completa).

Configurando la salida MIDI para tu teclado

En la distribución básica del IT, los únicos campos que tienen datos son los 'Note On', 'Note Off' y 'Program Change'. La razón para esto es que son los únicos comandos que son estándar para el MIDI. Los comandos MIDI como 'Change Pan', 'Bank Select', etc. difieren de un sintetizador a otro. No se puede hacer mucho para resolver esto, tendrás que echarle un vistazo al manual de tu sintetizador para encontrar los comandos MIDI exactos que necesita para realizar un cambio del panning, una selección de banco, etc.

Algunos valores que puedes probar si quieres pueden ser:

Cambio de panning: Bc 0A x

Selección de banco: Bc 0 a 20 b

Esto puede o no puede funcionar. Si funciona, de puta madre, pero si no, tendrás que leer el jodido manual para poder hacer funcionar esos comandos. :-)

7.6.- Comandos de efectos y Macros

Ahora que el motor MIDI del IT ha sido entendido y las bases de la comunicación MIDI han sido aseguradas, quizás la más poderosa función del motor MIDI del IT, los macros, van a ser explicados.

Efectos estándar

Primeramente, por el momento NO hay soporte para los comandos de efectos estándar del IT (como el slide del tono, portamento, vibrato, etc.) para que funcionen por medio del MIDI. Esto puede que sea o no sea implementado en el futuro. Actualmente, de todas formas, si aplicas un efecto E01 en una nota, no pasará nada por lo que concierne al aspecto MIDI del instrumento.

Efectos de macro - SFx

El comando SFx, previamente usado en el formato .MOD como "FunkRepeat", ha sido cambiado en el IT para permitir el funcionamiento de las macros MIDI. El comando Zxx que antes no estaba inutilizado también formará parte del funcionamiento MIDI.

Para entender como funciona esto, es mejor tener en cuenta un ejemplo. En el comienzo de este suplemento, la secuencia MIDI '91 3C 40' era utilizada como un comando de 'Note On', en el canal MIDI #2 reproducida como C-5 con una velocidad de 64. Esto era representado en la configuración MIDI del IT como '9c n v', por lo que el IT hacía las apropiadas sustituciones para obtener '91 3C 40'.

La sección de Macro Setup de la pantalla de configuración de salida MIDI puede ser usada para definir tus propias secuencias de comandos/datos MIDI. Pueden ser absolutamente lo que quieras, desde un comando MIDI SysEx hasta un comando de 'Note On'. De hecho, para empezar, tomaremos una secuencia de Note On como ejemplo y trataremos de emular los mismos bytes '91 3C 40', excepto que haremos la secuencia por nosotros mismos mejor que dejar que lo haga el IT por nosotros.

Cómo se relacionan los comandos SFx y Zxx

Primero, recuerda que el IT sustituye los valores cuando encuentra variables. Si le echas un vistazo a la sección de arriba en las Variables MIDI del IT, te darás cuenta de que la variable 'z' representa los datos de macro. Ahora que nos hemos metido en la cabeza la secuencia '91 3C 40', prueba a poner el campo de macro SF0 en la pantalla de configuración de salida del MIDI a '91 3C z'.

Recuerda que el tercer byte en la secuencia MIDI (40 en nuestro ejemplo) es la velocidad que se mandará en el mensaje de Note On. El campo de macro SF0 que acabas de definir significa que el IT leerá cualquier efecto Zxx y reemplazará la variable 'z' en la macro SF0 con el valor 'xx' del efecto Zxx. Para activar la macro, simplemente por un SF0 con una nota en los datos del patrón. Ahora, todos los valores desde Z00 hasta Z7F sustituirán la 'z' con sus valores. Por tanto, para mostrar que la secuencia SF0 reproducirá lo mismo que un comando de Note On:

C-5 01 SF0 (esto reproducirá el comando de Note On como es usual, y especificará que la secuencia de macro SF0 debe estar asociada a los efectos Zxx).
... .. ...
... .. ...
... .. ...
... .. Z40 (Esto lanzará nuestra secuencia SF0 con un valor de 'z' de 40h).

Los datos de patrón de arriba deberían producir un evento de 'Note On' en la fila 0 del patrón, y otra vez en la fila 4. Ahora, prueba reemplazando el efecto Z40 con Z7F. El IT sustituirá la 'z' con '7F', es decir, una velocidad de 7Fh (127 decimal) en nuestra secuencia SF0. El resultado será que escucharás un 'Note On' con velocidad 64 en la fila 0, y un 'Note On' con velocidad 127 en la fila 4; es decir, la segunda nota lanzada será el doble de alta en volumen. La secuencia que el IT mandará será '91 3C 7F'.

Resumen de comandos SFx

Nuestro ejemplo de arriba usando un secuencia de comando 'Note On' para un efecto SFx es un poco insulso, porque el IT hace ese efecto por sí mismo. De todas formas, esto ha servido para demostrar como funcionan los efectos.

Los comandos SFx, como puedes ver, pueden ser redefinidos absolutamente a cualquier dato MIDI. Esto puede ser algo simple como un deslizamiento del tono, algo complejo como un comando SysEx 'Poner filtro de después de tocar la nota', o lo que quieras. Las posibilidades son infinitas y están sólo limitadas por lo que tu sintetizador pueda hacer; la combinación SFx/Zxx del IT es suficientemente personalizable como para manejar casi todos los datos MIDI que necesites mandar.

Si quieres sacar provecho a estos comandos, tendrás que echar un vistazo al manual de tu sintetizador y aprenderte la sección de MIDI/SysEx. Por favor, no intentes pedir ayuda a nadie acerca del IT en este sentido porque cada sintetizador es diferente.

Comandos del Z80 al ZFF

Los comandos del Z80 al ZFF son también secuencias de macro, pero no tienen variable 'z' que sustituir. No están asociados a ningún efecto SFx, son secuencias de macro directas. Por ejemplo, si tienes una unidad controlable por efectos MIDI (como un Alesis MidiVerb), puedes asignar al comando Z80 que ponga un cierto valor a la longitud del retraso del reverb. Después, en la canción puedes poner un comando Z81 para cambiar el retraso del reverb o apagarlo del todo.

Para resumir, los comandos del Z80 al Zff son similares a las secuencias de macro, pero no tienen parámetros extra (mientras que las variables de macro SFx 'z' son controladas por Z00 hasta Z7F).

-----------
�Quieres tener el manual del I.T. traducido al espa�ol en tu casa? Pincha aqu�
-----------
Desplazador de Cap�tulos